package com.fingard.rh.fgmsp.transmanage.dao.query;

import com.fingard.rh.fgmsp.transcommon.dto.transaction.FingardTransactionsDTO;
import com.fingard.rh.fgmsp.transmanage.dto.query.FingardTransactionsParam;
import com.fingard.rh.fgmsp.transcommon.dto.transaction.FingardTransactionsPO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import com.fingard.rh.fgmsp.transmanage.dto.query.CountsDTO;

/**
 * @author lincc
 * @version 1.0 2019/03/29
 */
@Mapper
public interface FingardTransactionsMapper {

    List<FingardTransactionsPO> queryBySelective(FingardTransactionsParam fingardTransactionsParam);

    /**
     * 根据ID查询
     * @param entNum 险企号
     * @param id ID
     * @return 
     */
    FingardTransactionsDTO selectByPrimaryKey(@Param("entNum") String entNum,@Param("id") String id);

    /**
     * 根据ID列表查询查询
     * @param entNum 险企号
     * @param idList ID列表
     * @return 明细列表
     */
    List<FingardTransactionsPO> selectByPrimaryKeys(@Param("entNum") String entNum, @Param("idList") List<String> idList);

    int insert(@Param("entNum") String entNum, @Param("record") FingardTransactionsPO record);

    int insertSelective(@Param("entNum") String entNum, @Param("record") FingardTransactionsPO record);

    int deleteByPrimaryKey(@Param("entNum") String entNum, @Param("id") String id);

    int deleteByPrimaryKeys(@Param("entNum") String entNum, @Param("idList") List<String> idList);

    int updateByPrimaryKeySelective(@Param("entNum") String entNum, @Param("record") FingardTransactionsPO record);

    int updateByPrimaryKey(@Param("entNum") String entNum, @Param("record") FingardTransactionsPO record);

    /**
     * 列表查询  带高级查询
     * @param fingardTransactionsParam 查询参数
     * @return 明细列表
     */
    List<FingardTransactionsDTO> listByParam(FingardTransactionsParam fingardTransactionsParam);

    /**
     * 笔数金额统计 带高级查询
     * @param fingardTransactionsParam 查询参数
     * @return 统计结果
     */
    CountsDTO countByParam(FingardTransactionsParam fingardTransactionsParam);

 }